package admin.forms;

import java.util.TreeMap;

import javax.servlet.http.HttpServletRequest;

import admin.data.GeoData;

import models.GeoModel;

public class GeoForm {
	public TreeMap checkValid(HttpServletRequest request, GeoModel geo) {
		TreeMap form = new TreeMap();
		TreeMap check = new TreeMap();
		
		GeoData geoData = new GeoData();
		
		String geoId = (String) request.getParameter("geoId");
		String name = (String) request.getParameter("name");
		String parentId = (String) request.getParameter("parentId");
		String type = (String) request.getParameter("type");
		String alias = (String) request.getParameter("alias");
		
		geo.setGeoId(geoId);
		
		if (name == null || name.isEmpty()) {
			check.put("name", "Bạn chưa nhập thông tin tên.");
			geo.setName("");
		} else {
			geo.setName(name);
		}
		
		if (parentId == null || parentId.isEmpty()) {
			check.put("parentId", "Thông tin trực thuộc không được bỏ trống");
			geo.setParentId("");
		} else {
			geo.setParentId(parentId);
		}
		
		//check level
		if (parentId != null) {
			if (parentId.equalsIgnoreCase("0")) {
				geo.setParentId("");
				geo.setLevel(0);
				geo.setParents(geoId);
			} else {
				GeoModel parent = geoData.getGeo(parentId);
				geo.setLevel(parent.getLevel() + 1);
				geo.setParentId(parentId);
				geo.setParents(parent.getParents() + "," + geoId);
			}
		}
		
		if (type == null || type.isEmpty()) {
			check.put("type", "Loại địa danh chưa được chọn.");
			geo.setType("");
		} else {
			geo.setType(type);
		}
		
		if (alias != null) {
			geo.setAlias(alias);
		}
		
		form.put("checkValid", check);
		form.put("geo", geo);
		
		return form;
	}
	
	public TreeMap checkValidFormEdit(HttpServletRequest request, GeoModel geo) {
		TreeMap form = new TreeMap();
		TreeMap check = new TreeMap();
		
		GeoData geoData = new GeoData();
		
		String name = (String) request.getParameter("name");
		String type = (String) request.getParameter("type");
		String alias = (String) request.getParameter("alias");
		
		if (name == null || name.isEmpty()) {
			check.put("name", "Bạn chưa nhập thông tin tên.");
			geo.setName("");
		} else {
			geo.setName(name);
		}
		
		if (type == null || type.isEmpty()) {
			check.put("type", "Loại địa danh chưa được chọn.");
			geo.setType("");
		} else {
			geo.setType(type);
		}
		
		if (alias != null) {
			geo.setAlias(alias);
		}
		
		form.put("checkValid", check);
		form.put("geo", geo);
		
		return form;
	}
}
